var prefix="/courseStudent"
$(function() {
    load();
});

//下面两个方法必须再表格初始化前定义
function operateFormatter(value, row, index) {
    return [
        '<button id="btn_detail" type="button" class="btn btn-default" ' +
        'style=" background-image: linear-gradient(#8eb349, #5f7c22);">打卡</button>'].join('');
}
window.operateEvents = {
    'click #btn_detail': function(e, value, row, index) {
        //获取课程状态
        var status = row.status;
        if (status == 1) {
            var str = "是否确定打卡?";
            var id = row.id;
            layer.confirm(str, {btn: ['确定', '取消'], title: "提示"}, function () {
                //第一次打卡
                if (row.cardTime == null || row.cardTime == "") {
                    $.ajax({
                        type: "post",
                        url: "/courseStudent/updateCard",
                        data: {
                            "id" : id
                        },
                        dataType: "json",
                        async: false,
                        success: function (data) {
                            if (data.code == 0) {
                                layer.msg('打卡成功', {icon: 1});
                                reLoad();
                            } else {
                                layer.msg(data.msg, {icon: 2});
                            }
                        }
                    });
                }else {
                    //不是第一次打卡
                    var date = row.cardTime.substr(0,19);
                    date = date.replace(/-/g, '/'); // 把所有-转化成/
                    var timestamp = new Date(date).valueOf();
                    console.log(timestamp);
                    if (new Date(timestamp).toDateString() === new Date().toDateString()) {
                        console.log("当天");
                        layer.alert("今天已打卡，无需重复打卡！");
                    }else {
                        $.ajax({
                            type: "post",
                            url: "/courseStudent/updateCard",
                            data: {
                                "id" : id
                            },
                            dataType: "json",
                            async: false,
                            success: function (data) {
                                if (data.code == 0) {
                                    layer.msg('打卡成功', {icon: 1});
                                    reLoad();
                                } else {
                                    layer.msg(data.msg, {icon: 2});
                                }
                            }
                        });
                    }
                }
            });
        }else {
            layer.alert("无法进行打卡！");
        }

    }
};

function load() {
    $('#doCardTable')
        .bootstrapTable(
            {
                method : 'get', // 服务器数据的请求方式 get or post
                url : prefix + "/listCard", // 服务器数据的加载地址
                // showRefresh : true,
                // showToggle : true,
                // showColumns : true,
                iconSize : 'outline',
                toolbar : '#exampleToolbar',
                striped : true, // 设置为true会有隔行变色效果
                dataType : "json", // 服务器返回的数据类型
                pagination : true, // 设置为true会在底部显示分页条
                // queryParamsType : "limit",
                // //设置为limit则会发送符合RESTFull格式的参数
                singleSelect : true, // 设置为true将禁止多选
                // contentType : "application/x-www-form-urlencoded",
                // //发送到服务器的数据编码类型
                pageSize : 10, // 如果设置了分页，每页数据条数
                pageNumber : 1, // 如果设置了分布，首页页码
                // search : true, // 是否显示搜索框
                showColumns : false, // 是否显示内容下拉框（选择显示的列）
                sidePagination : "server", // 设置在哪里进行分页，可选值为"client" 或者
                // "server"
                queryParams : function(params) {
                    return {
                        // 说明：传入后台的参数包括offset开始索引，limit步长，sort排序列，order：desc或者,以及所有列的键值对
                        limit : params.limit,
                        offset : params.offset,
                        condition : $('#searchCondition').val(),
                        type : $('#searchType').val()
                    };
                },
                // //请求服务器数据时，你可以通过重写参数的方式添加一些额外的参数，例如 toolbar 中的参数 如果
                // queryParamsType = 'limit' ,返回参数必须包含
                // limit, offset, search, sort, order 否则, 需要包含:
                // pageSize, pageNumber, searchText, sortName,
                // sortOrder.
                // 返回false将会终止请求
                columns : [
                    {
                        checkbox : true
                    },{
                        field : 'tid',
                        title : "id",
                        visible : false
                    },
                    {
                        field : 'courseName',
                        title : '课程名称',
                        align : "center"
                    },
                    {
                        field : 'startDate',
                        title : '课程开始时间',
                        align : "center",
                        formatter : function(value, row, index) {
                            var newDate=/\d{4}-\d{1,2}-\d{1,2}/g.exec(value);
                            return newDate;
                        }
                    },
                    {
                        field : 'endDate',
                        title : '课程结束时间',
                        align : "center",
                        formatter : function(value, row, index) {
                            var newDate=/\d{4}-\d{1,2}-\d{1,2}/g.exec(value);
                            return newDate;
                        }
                    },
                    {
                        field : 'status',
                        title : '课程状态',
                        align : "center",
                        formatter : function(value, row, index) {
                            if (value == 0) {
                                return "课程打卡还未开始";
                            }else if (value == 1) {
                                return "课程打卡进行中";
                            }else if (value == 2) {
                                return "课程打卡已结束";
                            }else {
                                return "";
                            }
                        }
                    },
                    {
                        field : 'cardNum',
                        title : '已打卡天数',
                        align : "center",
                        formatter : function (value, row, index) {
                            if (value == 0) {
                                return "未打卡";
                            }else {
                                return value+"天";
                            }

                        }
                    },
                    {
                        field : 'cardTime',
                        title : '打卡时间',
                        align : "center",
                        formatter : function(value, row, index) {
                            if (value == "" || value == null) {
                                return "未打卡";
                            }else {
                                var newDate=value.substr(0,19);
                                return newDate;
                            }
                        }
                    },
                    {
                        title : '操作',
                        field : 'id',
                        align : 'center',
                        width : 150,
                        events: operateEvents,
                        formatter: operateFormatter
                    } ]
            });
}
function reLoad() {
    $('#doCardTable').bootstrapTable('refresh');
}
